SQL 查询基础 SELECT语句

1 SELECT 语句基础

1.1 列的查询

商品编号 商品名称 商品种类 销售单价 进货单价 登记日期
0001 T恤衫 衣服 10 5 2009-09-20
0002 打孔器 办公用品 5 3.2 2009-09-11
0003 运动T恤 衣服 40 28
0004 菜刀 厨房用具 30 28 2009-09-20
0005 高压锅 厨房用具 68 50 2009-01-15
0006 叉子 厨房用具 5 2009-09-20
0007 擦菜板 厨房用具 8.8 7.9 2008-04-28
0008 圆珠笔 办公用品 1 2009-11-11
商品编号商品名称商品种类销售单价进货单价登记日期
0001T恤衫衣服1052009-09-20
0002打孔器办公用品53.22009-09-11
0003运动T恤衣服4028
0004菜刀厨房用具30282009-09-20
0005高压锅厨房用具68502009-01-15
0006叉子厨房用具52009-09-20
0007擦菜板厨房用具8.87.92008-04-28
0008圆珠笔办公用品12009-11-11
商品编号商品名称商品种类销售单价进货单价登记日期0001T恤衫衣服1052009-09-200002打孔器办公用品53.22009-09-110003运动T恤衣服40280004菜刀厨房用具30282009-09-200005高压锅厨房用具68502009-01-150006叉子厨房用具52009-09-200007擦菜板厨房用具8.87.92008-04-280008圆珠笔办公用品12009-11-11
输出这3列
输出这3列
Text is not SVG - cannot display
SELECT product_id, product_name, purchase_price
FROM Product;

1.2 别名

SELECT product_id AS " 商品编号 ",
product_name AS " 商品名称 ",
purchase_price AS " 进货单价 "
FROM Product;

1.3 查询常数

中的SELECT 子句中的第一列 ' 商品 ' 是字符串常数,第2 列38 是数字
常数,第3 列 '2009-02-24' 是日期常数,它们将与product _ id
列和product _ name 列一起被查询出来。


SELECT ' 商品 ' AS string, 38 AS number, '2009-02-24' AS date,
product_id, product_name
FROM Product;

1.4 从查询结果中删除重复行

商品编号商品名称商品种类销售单价进货单价登记日期
0001T恤衫衣服1052009-09-20
0002打孔器办公用品53.22009-09-11
0003运动T恤衣服4028
0004菜刀厨房用具30282009-09-20
0005高压锅厨房用具68502009-01-15
0006叉子厨房用具52009-09-20
0007擦菜板厨房用具8.87.92008-04-28
0008圆珠笔办公用品12009-11-11
商品编号商品名称商品种类销售单价进货单价登记日期0001T恤衫衣服1052009-09-200002打孔器办公用品53.22009-09-110003运动T恤衣服40280004菜刀厨房用具30282009-09-200005高压锅厨房用具68502009-01-150006叉子厨房用具52009-09-200007擦菜板厨房用具8.87.92008-04-280008圆珠笔办公用品12009-11-11
product_type
(商品种类)
product_type...
衣服
衣服
办公用品
办公用品
厨房用具
厨房用具
Text is not SVG - cannot display
SELECT DISTINCT product_type
FROM product;

1.5 多列之前使用DISTINCT

SELECT DISTINCT product_type, regist_date
FROM Product;

1.6 使用Where 语句来选择记录

商品编号商品名称商品种类销售单价进货单价登记日期
0001T恤衫衣服1052009-09-20
0002打孔器办公用品53.22009-09-11
0003运动T恤衣服4028
0004菜刀厨房用具30282009-09-20
0005高压锅厨房用具68502009-01-15
0006叉子厨房用具52009-09-20
0007擦菜板厨房用具8.87.92008-04-28
0008圆珠笔办公用品12009-11-11
商品编号商品名称商品种类销售单价进货单价登记日期0001T恤衫衣服1052009-09-200002打孔器办公用品53.22009-09-110003运动T恤衣服40280004菜刀厨房用具30282009-09-200005高压锅厨房用具68502009-01-150006叉子厨房用具52009-09-200007擦菜板厨房用具8.87.92008-04-280008圆珠笔办公用品12009-11-11
选取 product_type 列为‘衣服’的记录 
选取 product_type 列为‘衣服’的记录 
Text is not SVG - cannot display
SELECT product_name, product_type
FROM Product
WHERE product_type = ' 衣服 ';
商品编号商品名称商品种类销售单价进货单价登记日期
0001T恤衫衣服1052009-09-20
0002打孔器办公用品53.22009-09-11
0003运动T恤衣服4028
0004菜刀厨房用具30282009-09-20
0005高压锅厨房用具68502009-01-15
0006叉子厨房用具52009-09-20
0007擦菜板厨房用具8.87.92008-04-28
0008圆珠笔办公用品12009-11-11
商品编号商品名称商品种类销售单价进货单价登记日期0001T恤衫衣服1052009-09-200002打孔器办公用品53.22009-09-110003运动T恤衣服40280004菜刀厨房用具30282009-09-200005高压锅厨房用具68502009-01-150006叉子厨房用具52009-09-200007擦菜板厨房用具8.87.92008-04-280008圆珠笔办公用品12009-11-11
选取行
选取行
选取行
选取行
Text is not SVG - cannot display

1.7 注释语句

1.7.1 单行注释

-- 本SELECT语句会从结果中删除重复行。
SELECT DISTINCT product_id, purchase_price
FROM Product;

1.7.2 多行注释

/* 本SELECT语句,
会从结果中删除重复行。*/
SELECT DISTINCT product_id, purchase_price
FROM Product;

这些SELECT 语句的执行结果与没有使用注释时完全一样。注释能
够帮助阅读者更好地理解SQL 语句,特别是在书写复杂的SQL 语句时,
希望大家能够尽量多加简明易懂的注释。注释不仅可以写在SELECT 语
句中,而且可以写在任何SQL 语句当中,写多少都可以。